Constants

MODE_INDEX

MODE_INDEX = 1

MODE_MESSAGE

MODE_MESSAGE = 2

Properties

$flags

$flags

List of known flags. Thanks to this we can handle flag changes with good performance. Bad thing is we need to know used flags.

$imap

$imap : \rcube_imap

Instance of rcube_imap

Type

rcube_imap

$db

$db : \rcube_db

Instance of rcube_db

Type

rcube_db

$userid

$userid : int

User ID

Type

int

$ttl

$ttl : int

Expiration time in seconds

Type

int

$threshold

$threshold : int

Maximum cached message size

Type

int

$icache

$icache : array

Internal (in-memory) cache

Type

array

$skip_deleted

$skip_deleted

$mode

$mode

$index_table

$index_table

$thread_table

$thread_table

$messages_table

$messages_table

Methods

__construct()

__construct(\rcube_db  $db, \rcube_imap  $imap, int  $userid, bool  $skip_deleted, string  $ttl, int  $threshold) : mixed

Object constructor.

Parameters

\rcube_db $db

DB handler

\rcube_imap $imap

IMAP handler

int $userid

User identifier

bool $skip_deleted

skip_deleted flag

string $ttl

Expiration time of memcache/apc items

int $threshold

Maximum cached message size

Returns

mixed —

close()

close() : mixed

Cleanup actions (on shutdown).

Returns

mixed —

set_mode()

set_mode(int  $mode) : mixed

Set cache mode

Parameters

int $mode

Cache mode

Returns

mixed —

get_index()

get_index(string  $mailbox, string  $sort_field = null, string  $sort_order = null, mixed  $existing = false) : array

Return (sorted) messages index (UIDs).

If index doesn't exist or is invalid, will be updated.

Parameters

string $mailbox

Folder name

string $sort_field

Sorting column

string $sort_order

Sorting order (ASC|DESC)

mixed $existing

Returns

array —

Messages index

get_thread()

get_thread(string  $mailbox) : array

Return messages thread.

If threaded index doesn't exist or is invalid, will be updated.

Parameters

string $mailbox

Folder name

Returns

array —

Messages threaded index

get_messages()

get_messages(string  $mailbox, array  $msgs = []) : array

Returns list of messages (headers). See rcube_imap::fetch_headers().

Parameters

string $mailbox

Folder name

array $msgs

Message UIDs

Returns

array —

The list of messages (rcube_message_header) indexed by UID

get_message()

get_message(string  $mailbox, int  $uid, bool  $update = true, mixed  $cache = true) : \rcube_message_header

Returns message data.

Parameters

string $mailbox

Folder name

int $uid

Message UID

bool $update

If message doesn't exists in cache it will be fetched from IMAP server

mixed $cache

Returns

\rcube_message_header —

Message data

add_message()

add_message(string  $mailbox, \rcube_message_header  $message, bool  $force = false) : mixed

Saves the message in cache.

Parameters

string $mailbox

Folder name

\rcube_message_header $message

Message data

bool $force

Skips message in-cache existence check

Returns

mixed —

change_flag()

change_flag(string  $mailbox, array  $uids, string  $flag, bool  $enabled = false) : mixed

Sets the flag for specified message.

Parameters

string $mailbox

Folder name

array $uids

Message UIDs or null to change flag of all messages in a folder

string $flag

The name of the flag

bool $enabled

Flag state

Returns

mixed —

remove_message()

remove_message(string  $mailbox = null, array  $uids = null) : mixed

Removes message(s) from cache.

Parameters

string $mailbox

Folder name

array $uids

Message UIDs, NULL removes all messages

Returns

mixed —

remove_index()

remove_index(string  $mailbox = null, bool  $remove = false) : mixed

Clears index cache.

Parameters

string $mailbox

Folder name

bool $remove

Enable to remove the DB row

Returns

mixed —

remove_thread()

remove_thread(string  $mailbox = null) : mixed

Clears thread cache.

Parameters

string $mailbox

Folder name

Returns

mixed —

clear()

clear(string  $mailbox = null, array  $uids = null) : mixed

Clears the cache.

Parameters

string $mailbox

Folder name

array $uids

Message UIDs, NULL removes all messages in a folder

Returns

mixed —

gc()

gc() : mixed

Delete expired cache entries

Returns

mixed —

synchronize()

synchronize(string  $mailbox) : mixed

Synchronizes the mailbox.

Parameters

string $mailbox

Folder name

Returns

mixed —

get_index_row()

get_index_row(mixed  $mailbox) : mixed

Fetches index data from database

Parameters

mixed $mailbox

Returns

mixed —

get_thread_row()

get_thread_row(mixed  $mailbox) : mixed

Fetches thread data from database

Parameters

mixed $mailbox

Returns

mixed —

add_index_row()

add_index_row(mixed  $mailbox, mixed  $sort_field, mixed  $data, mixed  $mbox_data = [], mixed  $exists = false, mixed  $modseq = null) : mixed

Saves index data into database

Parameters

mixed $mailbox
mixed $sort_field
mixed $data
mixed $mbox_data
mixed $exists
mixed $modseq

Returns

mixed —

add_thread_row()

add_thread_row(mixed  $mailbox, mixed  $data, mixed  $mbox_data = [], mixed  $exists = false) : mixed

Saves thread data into database

Parameters

mixed $mailbox
mixed $data
mixed $mbox_data
mixed $exists

Returns

mixed —

validate()

validate(mixed  $mailbox, mixed  $index, mixed  $exists = true) : mixed

Checks index/thread validity

Parameters

mixed $mailbox
mixed $index
mixed $exists

Returns

mixed —

build_message()

build_message(array  $sql_arr) : \rcube_message_header

Converts cache row into message object.

Parameters

array $sql_arr

Message row data

Returns

\rcube_message_header —

Message object

save_icache()

save_icache() : mixed

Saves message stored in internal cache

Returns

mixed —

message_object_prepare()

message_object_prepare(mixed  $msg, mixed  $size) : mixed

Prepares message object to be stored in database.

Parameters

mixed $msg
mixed $size

Returns

mixed —

get_index_data()

get_index_data(mixed  $mailbox, mixed  $sort_field, mixed  $sort_order, mixed  $mbox_data = []) : mixed

Fetches index data from IMAP server

Parameters

mixed $mailbox
mixed $sort_field
mixed $sort_order
mixed $mbox_data

Returns

mixed —

get_thread_data()

get_thread_data(mixed  $mailbox, mixed  $mbox_data = []) : mixed

Fetches thread data from IMAP server

Parameters

mixed $mailbox
mixed $mbox_data

Returns

mixed —